Skip to content

GROOVY-12069: introduce methodhandles in dgm wrappers#2598

Open
blackdrag wants to merge 4 commits into
masterfrom
feature/GROOVY-12069/save_unreflect
Open

GROOVY-12069: introduce methodhandles in dgm wrappers#2598
blackdrag wants to merge 4 commits into
masterfrom
feature/GROOVY-12069/save_unreflect

Conversation

@blackdrag

Copy link
Copy Markdown
Contributor

This change adds a target method handle in the dgm helper classes. Invokedynamic then does not have to use the path of a generic meta method invocation, but can invoke the target of the dgm helper directly. For this bytecode generation changes are done in the dgm converter, as well as changes in indy method handling for that case. The change contains also a cleanup of some warnings, a test for the dgm converter changes and some cleanup/refactoring in the Selector

@testlens-app

testlens-app Bot commented Jun 10, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

⚠️ TestLens detected flakiness ⚠️

Test Summary

Check Project/Task Test Runs
Build and test / lts (17, macos-latest) :test ActorTest > testScheduleAtFixedRateCancelStopsFurtherFires() ❌ ❌ ✅

🏷️ Commit: f962b5c
▶️ Tests: 20201 executed
⚪️ Checks: 30/30 completed


Learn more about TestLens at testlens.app.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.50.

Benchmark suite Current: f962b5c Previous: 61740ec Ratio
org.apache.groovy.bench.dispatch.CallsiteBench.dispatch_8_megamorphic_java 2642.11111669814 ops/ms 1481.817969808963 ops/ms 1.78

This comment was automatically generated by workflow using github-action-benchmark.

@codecov-commenter

codecov-commenter commented Jun 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 84.68468% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.5976%. Comparing base (15c1b26) to head (f962b5c).
⚠️ Report is 25 commits behind head on master.

Files with missing lines Patch % Lines
...java/org/codehaus/groovy/vmplugin/v8/Selector.java 75.8064% 5 Missing and 10 partials ⚠️
...n/java/org/codehaus/groovy/tools/DgmConverter.java 95.8333% 0 Missing and 2 partials ⚠️
Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##               master      #2598        +/-   ##
==================================================
+ Coverage     68.3052%   68.5976%   +0.2924%     
- Complexity      33399      34435      +1036     
==================================================
  Files            1518       1518                
  Lines          126879     129952      +3073     
  Branches        23005      23586       +581     
==================================================
+ Hits            86665      89144      +2479     
- Misses          32529      32985       +456     
- Partials         7685       7823       +138     
Files with missing lines Coverage Δ
...odehaus/groovy/reflection/GeneratedMetaMethod.java 90.7407% <100.0000%> (+31.8622%) ⬆️
...n/java/org/codehaus/groovy/tools/DgmConverter.java 95.0311% <95.8333%> (+95.0311%) ⬆️
...java/org/codehaus/groovy/vmplugin/v8/Selector.java 80.7615% <75.8064%> (-0.4756%) ⬇️

... and 22 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

JMH summary — classic (commit 85a11ab)

Speedup vs trailing 90-day baseline on gh-pages. Higher = faster.
1.00 = in line with history. Per-benchmark ratio, geomean within group.
Time-per-op units inverted so direction is consistent.

Group Speedup n
bench 1.235 × 26
core 1.039 × 77
grails 0.975 × 80

Baseline: dev/bench/jmh/<part>/classic/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data

@github-actions

Copy link
Copy Markdown
Contributor

JMH summary — indy (commit 85a11ab)

Speedup vs trailing 90-day baseline on gh-pages. Higher = faster.
1.00 = in line with history. Per-benchmark ratio, geomean within group.
Time-per-op units inverted so direction is consistent.

Group Speedup n
bench 0.978 × 26
core 1.000 × 77
grails 1.052 × 80

Baseline: dev/bench/jmh/<part>/indy/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants